#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
增强版打包脚本，用于将merge_pdfs_enhanced.py脚本打包成独立的可执行文件
"""

import os
import sys
import subprocess
import platform
import shutil
from pathlib import Path

def build_executable():
    """
    使用PyInstaller将merge_pdfs_enhanced.py打包为可执行文件
    """
    print("=" * 60)
    print("开始打包增强版PDF合并工具...")
    print("=" * 60)
    
    # 确定系统类型
    system = platform.system()
    icon_path = None
    
    # 尝试创建图标文件
    try:
        # 可以在这里添加图标文件创建逻辑
        # 如果有图标文件，可以在这里设置
        pass
    except Exception as e:
        print(f"创建图标文件时出错: {str(e)}")
    
    # 构建PyInstaller命令
    cmd = [
        'pyinstaller',
        '--onefile',  # 打包成单个文件
        '--noconfirm',  # 不询问覆盖
        '--clean',  # 清理临时文件
        '--name', 'PDF合并工具(增强版)',  # 可执行文件名
        '--windowed',  # 不显示控制台窗口
    ]
    
    # 添加图标
    if icon_path and os.path.exists(icon_path):
        cmd.append(f'--icon={icon_path}')
    else:
        cmd.append('--icon=NONE')
    
    # 添加源文件
    cmd.append('merge_pdfs_enhanced.py')
    
    print(f"执行命令: {' '.join(cmd)}")
    print("-" * 60)
    
    # 执行打包命令
    try:
        subprocess.run(cmd, check=True)
        
        # 打包成功后提示信息
        dist_dir = os.path.abspath('./dist')
        if system == 'Windows':
            exe_path = os.path.join(dist_dir, 'PDF合并工具(增强版).exe')
        else:
            exe_path = os.path.join(dist_dir, 'PDF合并工具(增强版)')
            
        if os.path.exists(exe_path):
            # 复制README到dist目录
            try:
                if os.path.exists('README.md'):
                    shutil.copy('README.md', dist_dir)
                    print(f"已复制README.md到{dist_dir}")
            except Exception as e:
                print(f"复制README时出错: {str(e)}")
            
            # 打印成功信息
            print("\n" + "=" * 60)
            print(f"打包成功！可执行文件已生成: {exe_path}")
            print("=" * 60)
            print("\n使用说明:")
            print("1. 将生成的可执行文件放在包含PDF文件的文件夹中")
            print("2. 双击运行可执行文件")
            print("3. 使用界面上的功能选择、排序和合并PDF文件")
            print("4. 合并后的PDF文件将保存在同目录下的'output'文件夹中")
            print("\n提示: 你也可以通过界面上的'浏览'按钮选择包含PDF文件的文件夹")
        else:
            print(f"\n警告: 可执行文件未在预期位置找到: {exe_path}")
            print(f"请检查 {dist_dir} 目录")
    except Exception as e:
        print(f"\n打包过程中发生错误: {str(e)}")
        print("\n请确保已安装PyInstaller，可通过以下命令安装:")
        print("pip install pyinstaller")

if __name__ == "__main__":
    build_executable() 